
// The bind manager manages all bindings to the engine.  In Windows,
// most of the bindings are in DLLs.  In other OSes, bindings might be
// compiled right in with the engine, and the bind manager just uses
// their static data and functions.

#ifndef __ARK_MODULE_H__
#define __ARK_MODULE_H__

// why not use 1 (true) to flag the correct situation while 0 (false) is used
// to flag the fail?
#define BIND_NOERROR			1
#define BIND_CANTFINDMODULE		0

#ifndef _WIN32
#include "XGame.h"
#else
#include <windows.h>
#endif

// namespace ArkCommon
// {
// 	namespace Module
// 	{
		class CModule
		{
		public:
			CModule();
			~CModule();
			// Bind and unbind to modules...
			int		Bind(const char *pModuleName);
			void	Unbind();

			// Returns NULL if this module doesn't contain the function.
			void*	GetFunctionPointer(const char *pFunctionName);

		protected:
			HINSTANCE	m_hInstance;
			char		m_szName[64];
		};
// 	}
// }


// using namespace ArkCommon::Module;

#endif  // __ARK_MODULE_H__


